In order to display objects on a video display screen, graphics primitives, such as lines, triangles and quadrilaterals, are typically converted into a pixel representation. This is because a display screen is configured with rows and columns of pixels that are individually activated to represent an object. In many cases, such as diagonal line segments between two vertices, for example, a line segment being displayed may not exactly intersect the center locations of pixels. In order to display this type of line segment, also known as a vector, different techniques are used to determine which pixels to activate. The general term for selecting pixels to activate is called rasterizing. One such process is called DDA (Digital Differential Analyzer) scan conversion. Another technique, which is a variation of DDA, is called Bresenham's line algorithm. Each of these techniques may be generally referred to as a line scan conversion process, and may be implemented by what is known as a line scan converter. The line scan converter converts geometrical data representative of a graphics line primitive into pixel data representative of the primitive.
In both of these techniques, the pixels selected for activation are dependent upon the direction used to "render" a line segment. As used herein, the direction in which a line segment is "rendered" actually refers to the order in which pixel data for the line segment is calculated. For example, the pixels selected for a line segment rendered from vertex V1 to vertex V2 may be different than the pixels selected for a line segment rendered from vertex V2 to V1. When several connected line segments make up a polygon edge, for example to render an edge of a triangle or quadrilateral, the line segments may be rendered in different directions. Therefore, if two adjacent polygons each contain a shared edge that is rendered in different directions for each of the two polygons, the adjacent sides may not precisely coincide.
Often, a line segment may have an implied orientation. An example is a dashed line made up of alternating dashes and spaces. The dashed line may begin with a dash at one vertex if rendered in one direction, yet may begin with a space at that vertex if rendered in the other direction. Typically, each line segment of a series of connected line segments that make up a polyline has an implied orientation. Otherwise, the pixels at a point where two of the line segments join may be rendered twice. A drawback of known line scan converters is that they may render line segments with the same implied orientation in different directions.
When applying a line scan conversion to a series of connected line segments that make up a polyline, it may be necessary to provide the line scan converter with the same vertex data twice. For example, a first line segment of a polyline may have vertices V1 and V2 as endpoints, and a second line segment of the polyline may have vertices V2 and V3 as endpoints. In prior art graphics systems, the vertex V2 data would be provided twice to the line scan converter. However, the process of providing the vertex data twice requires additional processing and memory, and is therefore undesirable.